/**
 * Created by JIANGLU009 on 2017/12/21.
 */
package com.cqfae.deploycentral.app.services;

import com.cqfae.deploycentral.app.web.request.AppInfoRequest;
import com.cqfae.deploycentral.app.web.request.InspectRequest;
import com.cqfae.deploycentral.app.web.response.IPage;
import com.cqfae.deploycentral.app.web.vo.*;

import java.util.List;

public interface InspectService {

    /**
     * 查询巡查统计，如果某天没有数据则填充空数据
     *
     * @param inspectStatisticsVo
     * @return List<InspectStatisticsVo>
     */
    List<InspectStatisticsVo> getStatistics(InspectStatisticsVo inspectStatisticsVo);

    /**
     * 查询城市
     *
     * @return List<SelectedVo>
     */
    List<SelectedVo> getCity();

    /**
     * 查询巡查历史表
     *
     * @param inspectRequest
     * @return IPage<InspectHistoryVo>
     */
    IPage<InspectHistoryVo> getHistory(InspectRequest inspectRequest);

    /**
     * 查询巡查历史详情表
     *
     * @param inspectRequest
     * @return IPage<InspectHistoryItemsVo>
     */
    IPage<InspectHistoryItemsVo> getHistoryItem(InspectRequest inspectRequest);

    /**
     * 健康巡查
     *
     * @param inspectHistoryVo
     * @return
     */
    String healthCheck(InspectHistoryVo inspectHistoryVo);

    /**
     * 定时任务，获取Jenkins巡检数据
     */
    int execJenkinsInspect();

    /**
     * 健康巡查jenkins回调
     *
     * @param inspectParams
     */
    int healthCheckCallBack(String inspectParams);

    /**
     * 区域城市配置新增
     *
     * @param inspectAreaAppVo
     * @return int
     */
    int areaAppAdd(InspectAreaAppVo inspectAreaAppVo);

    /**
     * 区域城市配置编辑
     *
     * @param inspectAreaAppVo
     * @return int
     */
    int areaAppEdit(InspectAreaAppVo inspectAreaAppVo);

    /**
     * 区域城市配置删除
     *
     * @param inspectAreaAppVo
     * @return int
     */
    int areaAppDelete(InspectAreaAppVo inspectAreaAppVo);

    /**
     * 区域城市配置翻页查询
     *
     * @param inspectRequest
     * @return
     */
    IPage<InspectAreaAppVo> areaAppListByPage(InspectRequest inspectRequest);

    /**
     * 区域城市配置单个查询
     *
     * @param inspectAreaAppVo
     * @return InspectAreaAppVo
     */
    InspectAreaAppVo areaAppGetOne(InspectAreaAppVo inspectAreaAppVo);

    /**
     * 获得所有有效的app
     *
     * @return
     */
    List<SelectedVo> getAppList(AppInfoRequest request);

}
